package firstcontent.gc;

/**
 * @Author: fxy
 * @Date: 2022/03/03/10:43
 * @Description: -verbose:gc -Xms20m -Xmx20m -Xmn10m -XX:+PrintGCDetails -XX:SurvivorRatio=8 -XX:+UseSerialGC
 *
 * 关于大对象的问题：
 * 不同jdk版本的处理是不一样的
 *  1、预先分配在eden区，如果对象比eden区还大直接进入old区；如果eden区分配不了则young gc再分配,此时的young gc尝试将不是垃圾的对象移至old区，
 *  如果old区不够，则继续停留在young区，再尝试将新new的对象移至old区，如果还是不够则OOM.
 *
 */
public class GCLogTest1 {
    private static final int _1MB = 1024 * 1024;
    public static void testAllocation(){
        byte[] allocation1,allocation2,allocation3,allocation4,allocation5,allocation6;
        allocation1 = new byte[2*_1MB];
        allocation2 = new byte[2*_1MB];
        allocation3 = new byte[2*_1MB];
        allocation4 = new byte[4*_1MB];
        allocation5 = new byte[3*_1MB];
        allocation6 = new byte[4*_1MB];
    }

    public static void main(String[] args) {
        testAllocation();
    }
}
